@tailwind base;
@tailwind components;
@tailwind utilities;

@import "react-day-picker/style.css";

@layer base {
  :root {
    --sidebar: #fff;
    --button : #fff;

    --background     : #f8f9fa;
    --foreground     : #000;
    --card           : #fff;
    --card-foreground: #000;

    --popover               : 0 0% 100%;
    --popover-foreground    : 240 10% 3.9%;
    --primary               : 240 5.9% 10%;
    --primary-foreground    : 0 0% 98%;
    --secondary             : 240 4.8% 95.9%;
    --secondary-foreground  : 240 5.9% 10%;
    --muted                 : 240 4.8% 95.9%;
    --muted-foreground      : 240 3.8% 46.1%;
    --accent                : 240 4.8% 95.9%;
    --accent-foreground     : 240 5.9% 10%;
    --destructive           : 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 98%;
    --border                : 240 5.9% 90%;
    --input                 : 240 5.9% 90%;
    --ring                  : 240 5.9% 10%;
    --radius                : 1rem;
    --chart-1: 221.2 83.2% 53.3%;
    --chart-2: 212 95% 68%;
    --chart-3: 216 92% 60%;
    --chart-4: 210 98% 78%;
    --chart-5: 212 97% 87%;
    --sidebar-background: 0 0% 98%;
    --sidebar-foreground: 240 5.3% 26.1%;
    --sidebar-primary: 240 5.9% 10%;
    --sidebar-primary-foreground: 0 0% 98%;
    --sidebar-accent: 240 4.8% 95.9%;
    --sidebar-accent-foreground: 240 5.9% 10%;
    --sidebar-border: 220 13% 91%;
    --sidebar-ring: 217.2 91.2% 59.8%;
    --scrollbar: rgba(15, 23, 42, 0.2);
  }

  .dark {
    --background: #202021;
    --foreground: #fffc;

    --sidebar: #000;
    --button : #000;

    --card                  : #000;
    --card-foreground       : #fff;
    --popover               : 240 10% 3.9%;
    --popover-foreground    : 0 0% 98%;
    --primary               : 0 0% 98%;
    --primary-foreground    : 240 5.9% 10%;
    --secondary             : 240 3.7% 15.9%;
    --secondary-foreground  : 0 0% 98%;
    --muted                 : 240 3.7% 15.9%;
    --muted-foreground      : 240 5% 64.9%;
    --accent                : 240 3.7% 15.9%;
    --accent-foreground     : 0 0% 98%;
    --destructive           : 0 62.8% 30.6%;
    --destructive-foreground: 0 0% 98%;
    --border                : 240 3.7% 15.9%;
    --input                 : 240 3.7% 15.9%;
    --ring                  : 240 4.9% 83.9%;
    --chart-1: 221.2 83.2% 53.3%;
    --chart-2: 212 95% 68%;
    --chart-3: 216 92% 60%;
    --chart-4: 210 98% 78%;
    --chart-5: 212 97% 87%;
    --sidebar-background: 240 5.9% 10%;
    --sidebar-foreground: 240 4.8% 95.9%;
    --sidebar-primary: 224.3 76.3% 48%;
    --sidebar-primary-foreground: 0 0% 100%;
    --sidebar-accent: 240 3.7% 15.9%;
    --sidebar-accent-foreground: 240 4.8% 95.9%;
    --sidebar-border: 240 3.7% 15.9%;
    --sidebar-ring: 217.2 91.2% 59.8%;
    --scrollbar: rgba(226, 232, 240, 0.2);
  }
}

@layer base {
  * {
    @apply border-border;
    --tw-prose-pre-bg: #282c34;
  }

  body {
    @apply bg-background text-foreground;
  }
}

html {
  touch-action: manipulation;
}

::-webkit-scrollbar {
  background-color: var(--scrollbar);
  border-radius   : 10px;
  width           : .5px;
  height          : .5px;
}

::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background   : var(--scrollbar);
}

::-webkit-scrollbar-track {
  border-radius: 10px;
  background   : var(--scrollbar);
}

.scroll-container::-webkit-scrollbar {
  display: none;
}

.custom-scrollbar::-webkit-scrollbar {
  background-color: var(--scrollbar);
  border-radius   : 10px;
  width           : 6px;
  height          : 6px;
}

.custom-scrollbar::-webkit-scrollbar-track {
  border-radius: 10px;
  background   : var(--scrollbar);
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background   : hsl(var(--muted));
}

@layer utilities {
  .group:hover .group-hover\:rotate-right {
    transform: translateY(0.15rem) rotate(-15deg) translateZ(0px);
  }

  .group:hover .group-hover\:-rotate-right {
    transform: translateY(-0.15rem) rotate(15deg) translateZ(0px);
  }

  .group:hover .group-hover\:rotate-left {
    transform: translateY(0.15rem) rotate(15deg) translateZ(0px);
  }

  .group:hover .group-hover\:-rotate-left {
    transform: translateY(-0.15rem) rotate(-15deg) translateZ(0px);
  }
}

.prose {
  max-width: 100% !important;
}

@media (max-width: 640px) {
  .prose {
    width: 344px;
  }
}

.prose pre {
  padding: 0;
}

.truncate {
  overflow     : hidden;
  text-overflow: ellipsis;
  white-space  : nowrap;
}

select:focus {
  outline: none;
}

.tbody-hover:hover td {
  background-color: hsl(var(--muted));
}

.md-p {
  /* 注意：pre-wrap 会同时尊重 <br> 和源码中的换行符，
     当 Markdown 转成 <br> 后后面仍有一个 \n 时会产生“双换行”（空行）。
     这里改为 normal，避免叠加的换行导致空行。*/
  white-space: normal;
  /* 仍然保证长词/URL 在移动端可断行 */
  overflow-wrap: anywhere;
  margin     : .5em 0 !important;
}

.prose img {
  margin: .5em 0 !important;
}

/* hidden input type is number spin button */
.no-spin-button {
  -moz-appearance   : textfield;
  -webkit-appearance: none;
  appearance        : none;
}

.no-spin-button::-webkit-inner-spin-button,
.no-spin-button::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin            : 0;
}

/* chat-container */
.chat-container {
  width: auto;
}

@media (width < 640px) {
  .chat-container {
    width: 100vw !important;
  }
}

button,
a,
div {
  -webkit-tap-highlight-color: transparent !important;
}

/* Calendar theme support */
.rdp-root {
  --rdp-accent-color: hsl(var(--primary));
  --rdp-background-color: hsl(var(--background));
  --rdp-accent-color-dark: hsl(var(--primary-foreground));
}

.dark .rdp-root {
  --rdp-accent-color: hsl(var(--primary));
  --rdp-background-color: hsl(var(--background));
  --rdp-accent-color-dark: hsl(var(--primary-foreground));
}